const datbase =require('./datbase')
let loadAllItems = datbase.allItems();
let promotions=datbase.promotions();
module.exports = function main(inputs) {
  let cartItems=[];
  let result={};//构造对象
//   let inputs = [
//     'ITEM000001',
//     'ITEM000001',
//     'ITEM000001',
//     'ITEM000001',
//     'ITEM000001',
//     'ITEM000003-2',
//     'ITEM000005',
//     'ITEM000005',
//     'ITEM000005'
// ];
for(let i of inputs)//of遍历数组元素，对象属性值  in遍历数组下标 对象属性
{
  if(i.length!=10)
  {
     let  input1=i.split("-");
     //console.log(input1);
      result[i]={};
      result[i].barcode=input1[0];
      result[i].count=input1[1];//2
  }
  else{

  if(!result[i])//对象里再构造对象
  {
       result[i]={};
       result[i].barcode=i;
       result[i].count=1;
  }
  else
     result[i].count++;
}
}
     for(let j in result)
     cartItems.push(result[j]);
     
     
    // console.log(cartItems); 


   let gift=[];
    let g1={};
    for(let m of cartItems)
    {
      for(let n of promotions[0].barcodes)
      {
        if(m.barcode==n)
        {
          g1[n]={};
          let a=n.split("");
         g1[n].name= loadAllItems[parseInt(a[a.length-1])].name;
          g1[n].count=parseInt(m.count/3);
          g1[n].unit=loadAllItems[parseInt(a[a.length-1])].unit;
         // g1[n].barcode=n;

        }
      }
    }
    for(let j in g1 )
    gift.push(g1[j]);
    //console.log(gift);

    

let receiptItems=[];
let r1={};
for(let i in cartItems)
{
  if(!r1[i])
  {
     r1[i]={};
     r1[i].count=cartItems[i].count;
    let p=(cartItems[i].barcode).split("");
    r1[i].name=loadAllItems[parseInt(p[p.length-1])].name;
    r1[i].unit=loadAllItems[parseInt(p[p.length-1])].unit;
    r1[i].price=loadAllItems[parseInt(p[p.length-1])].price;
   
      if(r1[i].count>2)
      {
        r1[i].subTotal=loadAllItems[parseInt(p[p.length-1])].price*(cartItems[i].count-1);
      }
      else
      {
        r1[i].subTotal=loadAllItems[parseInt(p[p.length-1])].price*(cartItems[i].count);
      }
  }
}
for(let j in r1 )
receiptItems.push(r1[j]);
//console.log(receiptItems)


 let summary={};
summary.total=receiptItems.reduce(function (sum, x) {
  return sum+ x.subTotal;
}, 0);
//console.log(summary.total);
summary.saved=receiptItems.reduce(function (sum, x) {
  return sum+ ((x.count*x.price)-x.subTotal);
},0);
//console.log(summary.saved);



//打印总菜单
 result= '***<没钱赚商店>购物清单***\n';
receiptItems.forEach(function(receiptItems){
  result+='名称：'+receiptItems.name+'，数量：'+receiptItems.count+receiptItems.unit+'，单价：'+
  (receiptItems.price).toFixed(2)+'(元)，小计：'+(receiptItems.subTotal).toFixed(2)+'(元)\n'
})
result+='----------------------\n' +'挥泪赠送商品：\n' ;
gift.forEach(function(gift){
  result+='名称：'+gift.name+'，数量：'+gift.count+gift.unit+'\n';
})
result+='----------------------\n';
result+='总计：'+(summary.total).toFixed(2)+'(元)\n'+'节省：'+(summary.saved).toFixed(2)+'(元)\n'+'**********************'
  
console.log(result);





    

/*console.log('***<没钱赚商店>购物清单***\n' +
'名称：雪碧，数量：5瓶，单价：3.00(元)，小计：12.00(元)\n' +
'名称：荔枝，数量：2斤，单价：15.00(元)，小计：30.00(元)\n' +
'名称：方便面，数量：3袋，单价：4.50(元)，小计：9.00(元)\n' +
'----------------------\n' +
'挥泪赠送商品：\n' +
'名称：雪碧，数量：1瓶\n' +
'名称：方便面，数量：1袋\n' +
'----------------------\n' +
'总计：51.00(元)\n' +
'节省：7.50(元)\n' +
'**********************');*/
    return result;

};